home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / biz / dbase / Aminet2DB.lha / CSV2TSV.rexx < prev    next >
OS/2 REXX Batch file  |  1998-01-28  |  1KB  |  46 lines

  1. /*
  2.  * CSV2TSV.rexx
  3.  * Converts comma-separated values to tab-separated values.
  4.  * $VER: CSV2TSV.rexx 1.0 (6.12.97)
  5.  * By Deok-Min Yun
  6.  */
  7.  
  8. OPTIONS RESULTS
  9. PARSE ARG filename
  10.  
  11. tab = '09'x
  12.  
  13. IF OPEN('DataFile', filename, 'R') = 1 THEN DO
  14.   IF OPEN('SaveFile', filename||'.TSV', 'W') = 1 THEN DO
  15.     DO FOREVER
  16.       temp = READLN('DataFile')
  17.       IF EOF('DataFile') THEN BREAK
  18.       ptr = 1
  19.       DO WHILE (INDEX(temp, ',', ptr) ~= 0) | (INDEX(temp, '"', ptr) ~= 0)
  20.         comma = INDEX(temp, ',', ptr)
  21.         quote1 = INDEX(temp, '"', ptr)
  22.         IF (quote1 = 0) | (quote1 > comma) THEN DO
  23.           ptr = comma
  24.           temp = OVERLAY(tab, temp, ptr)
  25.           ptr = ptr + 1
  26.         END
  27.         ELSE IF (comma = 0) | (quote1 < comma) THEN DO
  28.           ptr = quote1
  29.           temp = DELSTR(temp, ptr, 1)
  30.           quote2 = INDEX(temp, '"', ptr)
  31.           IF quote2 ~= 0 THEN DO
  32.             ptr = quote2
  33.             temp = DELSTR(temp, ptr, 1)
  34.           END
  35.           ELSE ptr = LENGTH(temp)
  36.         END
  37.       END
  38.       CALL WRITELN('SaveFile', temp)
  39.     END
  40.     CALL CLOSE('SaveFile')
  41.   END
  42.   ELSE SAY "Couldn't create a new file."
  43.   CALL CLOSE('DataFile')
  44. END
  45. ELSE SAY "Couldn't open original file."
  46.